home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
SuperHack
/
SuperHack CD.bin
/
SCRIPTZ
/
IDLE.ZIP
/
OKEYIDLE.TXT
< prev
next >
Wrap
Text File
|
1996-05-25
|
15KB
|
332 lines
OkeyDokey's IdleWatcher (v1.3)
Feel free to share this script with others, provided you only
distribute the unedited and complete idlekick.zip file.
INTRODUCTION
This is an idle monitor/kick for mIRC 4.1. It is designed for channel
ops. You should have experience with and a keen interest in mIRC's
remote to comfortably understand, install, and use IdleWatcher.
IdleWatcher can monitor for idling, either channel-wide, or on
selected users. When the idle time limit is reached, IdleWatcher can
either give you (or all chanops) a message, or kick the idling user.
IdleWatcher can check for idling once, or on a continuous basis.
I wrote this from scratch after wondering how/whether an idle kick
would work in mIRC. A few enquiries had come up empty-handed. Idle
(:▐) curiosity turned into something of an obsession with mIRC's
configurablity- I just knew that it could be made to work! This rather
elaborate solution to a simple but specialized need is the result.
Having fun while learning more about mIRC's remote was the motivation
and value for me.
If you decide to use IdleWatcher, read this file and install.txt
carefully! This is a somewhat complex script. It has an automatic kick
function, and the script *must* be installed as directed to integrate
properly into your events section.
FILES INCLUDED
readme.txt A few obvious and unnecessary comments.
descript.txt A description of IdleWatcher.
okeyidle.txt This file explaining IdleWatcher.
install.txt Installation instructions. Read carefully!
grpreadr.txt The IdleWatcher status (group) reader.
iwscript.txt The IdleWatcher script components.
idletmr.log The file in which the nick-timer pairs are held.
idlelog.txt The log file for IdleWatcher.
idletag.cmd The command file for IdleTag.
idleqhlp.ply Three files used by the help functions.
idlethlp.ply
idlerhlp.ply
IDLEWATCHER FEATURES
*Automatic: assigns, tracks, executes, and clears timers automatically
*Configureable: use monitor mode or kick mode; watch entire channel or
just selected user(s); check for idling once, or continuously.
*Comprehensive set of menu bar and popup commands
*Good feedback on status/settings/actions; includes command group
reader; will advise other channel ops if desired.
*Logging and help functions.
*Ctcp access: you can allow access by your op level users to basic
IdleWatcher information and function through your remote; set of ctcp
commands included.
*Compatible: If properly installed will not interfere with other event
triggered commands in your remote. Can be active at the same time as
flood protection, word kicks, file offering, and other ON TEXT events.
*Can be used on more than one channel simultaneously
WHY AN IDLEKICK?
There are a number of reasons why an idlekick might be desireable: you
may simply want your client's remote to be very capable in channel
management; you too are irritated by those users who join your channel
while on 9 others and/or simply 'squat' without paying attention or
uttering a word; active participation might be expected or required on
your channel; for the conscientious op it could identify shy newbies
who might need only a gentle prompt to jump in and participate; you
are concerned about lurking spybots/clonebots/split-lookers
(DeathWishGangstaKillerPlatinum v13.7?); and so forth.
HOW DOES IT WORK?
Idling is a 'negative event', it happens when nothing happens! That
makes an idlekick script a bit unusual, and though simple in concept a
challenge to write (anyone who has tried will sympathize!). In the
case of IdleWatcher, when the idle monitoring is initiated, a unique
timer is assigned to the nick being monitored. If the nick does
anything in the channel before the idle time limit is up, the timer is
identified and cancelled. If the nick does nothing, the timer 'limits
out' and executes a command 'announcing' that the nick has been idle.
Something else may then happen (any guesses?).
THE IDLEWATCHER SCRIPT (key points)
Uses custom 'command' definition and redirection in the events remote.
Channel-wide monitoring is through the remote's ON JOIN line(s).
A unique idle timer is assigned to each monitored nick (TIMERSTART).
Timer number and duration are controlled by variables.
The assigned nick-timer pair is written to file (TIMERLOG).
The next available timer number is incremented (using BUMPTIMER).
Individual nicks are tagged for monitoring by a $read command file.
All event triggers (any visible activity by the IdleWatched nick) cancel
that user's idle timer.
Completing timers notify you and/or other chanops with a message.
If IdleGuard is activated, timers are reset after any activity.
If IdleKick is activated, the message triggers a kick.
All idle messages/kicks are logged.
Positioning and duplication in the events section ensure other event
lines can function while idle monitoring is active (eg. flood
protection, word kicks, file offering).
POPUP/MENU COMMANDS
*IdleMonitor: The main 'on/off' switch for IdleWatcher, IdleMonitor
watches ALL users joining the channel, and gives you a message if the
idle limit is exceeded.
*IdleKick: If the idle limit is exceeded by any IdleWatched user, KICKS
the user.
*IdleTag: Tags the SELECTED user for IdleWatching. You can select up
to 3 names at a time.
*IdleGuard: RESETS timers providing CONSTANT IdleWatching.
*IdleOpNotice: Sends any other ops on the channel IdleWatcher notices.
*IdleCtcp: Makes some IdleWatcher commands available through your
remote to op level users.
*IdleWatcher Status: Displays current IdleWatcher configuration, idle
time limit, and monitored users.
*Time Limit: Shows or sets idle time limit, in seconds. (%iwlimit)
*Clear IdleWatcher: Halts all IdleWatching. Clears ALL active timers,
and the IW user level. Disables all IW command groups.
Other commands, all pretty well self-explanatory: *List Users; *Clear
Level; *Flush Level; *Show All Timers; *Cancel Timer; *Cancel ALL
Timers; *Open IdleWatcher Log; *Open NickTimer Log; *Quick Help;
*Topic Help.
You can use Topic Help online for explanation of any menu command.
REMOTE CTCP COMMANDS
IW STATUS, IW HELP, IW GETLOG are the basic ctcp commands always
available to your op level users. If you have IdleCtcp switched on, IW
OPNOTICEON, IW OPNOTICEOFF, IW CHANNELON, IW CHANNELOFF and IW USER
are made available to your op level users. For stand-alone use in a
channel management role, the IdleKick function is available at 'your'
access level. You may choose to adjust what functions are externally
available to your op level users. See the online Topic Help for more
on the individual ctcp's.
USING IDLEWATCHER:
You can leave IdleMonitor switched on at all times. It will monitor
all users joining the channel for idling, once, and message you
whenever the idle time limit is exceeded. It will remain on between
sessions, until you select IdleMonitor Off or Clear IdleWatcher.
IdleKick and IdleGuard work on completing timers. They can be switched
on or off at any time, and all subsequent timer expiries will be
affected accordingly,
Select IdleWatcher Status to confirm its current configuration, and to
check who is currently being monitored.
At any time you can tag a selected user for monitoring with IdleTag,
independently of the IdleMonitor setting. The user tagged would be
subject to IdleKick and IdleGuard if they are switched on. You can
select up to 3 nicks at once, and even tag all the users on the
channel when you first join if you wish.
Sound complicated? It's not, really- the commands just mentioned are
the core ones. Play with all the menu commands (careful with IdleKick
if you are opping on a channel!), and it will quickly become clear.
Feedback when you use IdleWatcher is good. You can click on Quick Help
for a brief review of the core commands, and Topic Help for more on
any given menu command.
Decide on an appropriate idle time limit for your purposes. The script
comes with a 20 minute setting; you can reset it from the menu/popup
(Time Limit). The setting is entered and displayed in seconds. The
current variable setting is used when the timer is started, and for
all channels monitored. When you change it, only new timers are
affected. If you want to change the duration of running idle timers,
you will need to cancel them (Cancel Timer), and retag the users. You
can change the kick message under the IdleKick command.
Shutting off IdleWatcher: 'Clear IdleWatcher' completely resets all
IdleWatcher functions, disables all IW command groups, clears the IW
user level, and stops *all* timers. Very thorough, and effective.
Unfortunately, mIRC does not allow shutting off groups of timers; you
can either cancel them individually, or all together. If you have any
other 'critical' timers running, you will not want to use Clear
IdleWatcher. Instead, switch off any active IW functions (do
'IdleWatcher Status' if you're unsure what you have on!). Then you can
either just let the running timers run their course (no big deal if
IdleKick and IdleOpNotice are off; no one will be bothered), or you
can select Cancel Timer and stop any active IdleWatcher timers
individually (really quite easy to do).
A CAUTION:
If you part a channel for whatever reason, someone on whom you have an
idle timer running may have been active, and so their timer would have
been cleared had you not been absent. You really shouldn't use
IdleKick if you have been absent from the channel, unless you are
confident the user would have been inactive while you were gone.
[The script does come with a 'switch' in an ON JOIN line at your
access level for your 'prime' channel, within the IdleMonitor command
group, and is active only when you have IdleMonitor switched on.
IdleKick will be switched off when you join your 'prime' channel, and
you'll receive a reminder to check any active timers.]
Whenever you leave the channel, you will also miss any parts or quits
that occurred while you were gone. When you return, the monitored
users will no longer be there, but you will have active timers running
on them! Best to start fresh when you return to a channel after leaving.
NOTE ON IDLEKICK:
IdleKick affects completing timers; you can switch it on or off at any
time, and all current and new timers will be affected accordingly
(likewise with IdleGuard). IdleKick is not selective on user; it
applies to all completing timers (again, as with IdleGuard). Kicks are
accompanied by a 30 second temporary ban to foil auto-rejoin.
NOTE ON IDLEGUARD:
When switched on IdleGuard resets IdleWatcher timers whenever the
users being watched say or do anything. On a busy channel(s) this will
generate a lot of processing, and may affect performance on slower
computers (when tested on a 386sx and active on two busy channels, it
was noticeable but not really a problem).
By maintaining the monitored user at IdleWatcher level, IdleGuard when
active will 'block' monitored users from channel flood protection
lines subsequent to the first line (which you will have duplicated at
IW user level as install.txt instructs). Ctcp flood protection remains
fully functional (when duplicated with the correct access level, of
course). When installed as directed, IdleWatcher is perfectly
compatible with channel flood protection if IdleGuard is not on. You
may not want to use IdleGuard in situations where flood protection is
important to you. (But then, if you feel the need to use IdleGuard,
flooding behavior is probably unlikely!)
TIPS, HINTS, MISCELLANEOUS NOTES
You STATUS WINDOW will be significantly busier when operating
IdleWatcher, especially if you use IdleGuard on a busy channel. You
may want to go into mIRC's Options/Extras and remove the line
separator.
IdleWatcher Status reports: if you use any method other than the
IdleWatcher menu or alias commands to enable/disable IdleWatcher
command groups (eg. direct editing in the remote or *.ini files, or
using /enable or /disable in the edit box), the IdleWatcher group
reader will not be updated, and you may get then get inaccurate
IdleWatcher status/configuration reports.
If you IdleTag a user who is already being IdleWatched, a second
additional timer will be started, and the first timer will continue
and limit out unless you cancel it manually. If you want to ensure
everyone in a channel is monitored, join the channel with IdleMonitor
off, go down the names list IdleTagging everyone, then turn on
IdleMonitor. This way you'll avoid duplicating timers.
If you are a keyboard kinda guy/gal, review the IdleWatcher aliases;
everything the menu/popups do can be done using the edit box. (the
popup command definitions are all alias based)
Remote functionality: If you want to enhance IdleWatcher remote
functionality, consider adding other ctcp commands at your/op access
level (eg, IdleGuard, IdleKick, idle time limit).
A monitored user who does nothing in the channel while sending private
messages to a user other than yourself will be seen as idle, and
treated as such.
The best method for IdleWatcher to announce idle users seemed to be a
/msg $me. It does result in duplicate lines if your query window is
open. Not as tidy as I'd like, but useful as a trigger for other
IdleWatcher functions, whereas /echo could not be. For status reports
and command feedback, /echo is used extensively, but I used no color
switches. If you want to brighten things up, just use your text editor
(when mIRC is inactive) to insert the /echo color numbers you prefer.
The ON KICK: Whenever an IdleWatched user is kicked, the script will
do an /ruser, and $read the /timer off line for that user from the
timer log file. If the kick is an IdleWatcher kick the /ruser and
$read will already have been executed, and you will see a second
attempt in the status window to remove the user level and stop the
timer.
I do hope you find IdleWatcher a useful and enjoyable addition to your
mIRC remote (and perhaps even the source of one or two new ideas you
can use!) I welcome any comments on this script. I may be found opping
on DALnet #mIRC, or emailed at okeydoke@freenet.edmonton.ab.ca. (Drop
me a line if you decide to use IdleWatcher, and I'll advise you of any
updates.)
Happy IRCing!
OkeyDokey
5/25/96
I've written two other scripts that you may find useful in your chanop
duties. CloneBan, an effective channel clone protection script; and
WhoisLog, a /whois capture script, with a number of functions that
automatically respond to /whois information. Both will be released
shortly.